package Protecto0;

import java.io.*;

import Mapeo.*;

public class Principal {
	
	private String ruta;
	private int cantPalabras;
	private	MapeoConHashCerrado<String,Integer> mapeo;
	
	
	public Principal(String ruta) {
		this.ruta = ruta;
		cantPalabras = 0;
		mapeo = new MapeoConHashCerrado<String,Integer>();
	}
	
	public boolean procesar() {		
		File folder = new File(ruta);
		File[] listOfFiles = folder.listFiles();
		boolean toReturn = true;
		FileReader fr;
		BufferedReader br;
		try {
			for(File texto : folder.listFiles()) {
				if(texto.isFile() && texto.getName().endsWith(".txt")) {					
					System.out.println("Archivo: "+texto.getName());
					fr = new FileReader(texto);
					br = new BufferedReader(fr);
					String linea;
					while((linea = br.readLine()) != null)	procesarLinea(linea);
					br.close();
					fr.close();
				}
			}
		}
		catch(FileNotFoundException E) {return false;}
		catch(IOException E) {return false;}
		return toReturn;
	}
	
	private void procesarLinea(String linea){
		linea.toLowerCase();
		linea += '/';
		String palabra = "";
		char car;
		for(int i = 0 ; i < linea.length() ; i++) {
			car = linea.charAt(i);
			if(((int)car > 96) && ((int)car < 123)) {
				palabra += car;
			}
			else if(palabra != "") {
				insertarEnMap(palabra);
				cantPalabras++;
				palabra = "";
			}
		}
	}
	public int cantPalabras() {
		return cantPalabras;
	}
	
	private void insertarEnMap(String palabra) {
		try {				
			mapeo.update(palabra);
		}catch(Mapeo.InvalidKeyException E) {}
	}
	
	public String mostrar(){
		String aux="";
		for( Entry(String,Integer) entrada : mapeo.entries())
			aux=aux+(entrada.getKey()+" "+entrada.getValue()+"\n"+);
		return aux;	
	}
}










/*package Protecto0;

import java.io.*;
import Mapeo.*;
import ColaConPrioridades.*;

public class Principal {
	
	private String ruta;
	private Map<String,Integer> mapeo;
	
	public Principal(String ruta) {
		this.ruta = ruta;
		mapeo = new MapeoConHashCerrado<String,Integer>();
	}
	
	public boolean procesar() {
		
		File folder = new File(ruta);
		File[] listOfFiles = folder.listFiles();
		boolean toReturn = true;

		try {
			for(File texto : folder.listFiles()) {
				if(texto.isFile() && texto.getName().endsWith(".txt")) {
					
					FileReader fr = new FileReader(texto);
					BufferedReader br = new BufferedReader(fr);
					String linea;
					int cantLineas = 0;
					while((linea = br.readLine()) != null){
							cantLineas++;
							procesarLinea(linea);
					}
					br.close();
				/*	br = new BufferedReader(fr);
					String[] dataTexto = new String[cantLineas];
					for(int i = 0; i < cantLineas; i++) {
						dataTexto[i] = br.readLine();						
					}
					br.close();
				
					fr.close();
					
				}
			}
		}
		catch(FileNotFoundException E) {return false;}
		catch(IOException E) {return false;}
		return toReturn;
	}
	
	private void procesarLinea(String linea){
		String palabra = "";
		char car;
		linea.toLowerCase();
		linea += '/';
		for(int i = 0 ; i < linea.length() ; i++) {
			car = linea.charAt(i);
			if(((int)car > 96) && ((int)car < 123)) {
				palabra += car;
				System.out.println(car);
			}
			else {
				System.out.println("Palabra: "+palabra);
				insertarEnMap(palabra);
				palabra = "";
			}
		}
	}
	
	private void insertarEnMap(String palabra) {
	}
}
*/
